package com.drivers.historyorder.controller;

import com.alibaba.fastjson.annotation.JSONType;
import com.drivers.historyorder.service.HistoryOrderService;
import com.drivers.model.R;
import com.drivers.model.historyorder.OrderAppraise;
import com.drivers.model.historyorder.DriverFeedBack;
import com.drivers.model.historyorder.UserPersonal;
import com.drivers.model.historyorder.vo.OrderVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.util.List;

@RestController
@RequestMapping("/historyorder")
public class HistoryOrderController {
    @Autowired
    private HistoryOrderService historyOrderService;

    /**
     * 查询历史订单信息
     *
     * 参数 driverId 司机的ID，用于识别特定司机的历史订单
     * @return 返回司机的历史订单列表封装在R对象中
     *
     * 查询特定司机的历史订单信息
     * 方法通过driverId参数来筛选该司机的所有历史订单
     * 返回的数据是所有匹配的订单详细信息
     */
    @GetMapping("/findOrder")
    public R findOrder(Integer driverId){
        // 查询司机的历史订单
        // 通过调用historyOrderService的findOrder，传递司机的ID作为参数，获取该司机的历史订单
       List<OrderVo> orderVoList = historyOrderService.findOrder(driverId);
       // 返回司机的历史订单列表封装在R对象中
      return R.ok(orderVoList);
    }



    /*
    * 根据用户ID查询订单
    * 参数为 userId 用户ID
    * 返回值为 R 对象，封装查询结果
    *
    * */
    @GetMapping("/findUser")
    public R findUser(Integer userId){
        // 查询用户信息
       UserPersonal userPersonal = historyOrderService.findUser(userId);
       // 返回用户信息封装在R对象中
        return R.ok(userPersonal);
    }
    /* 司机提交反馈 添加到订单表
    * 参数 driverFeedBack 反馈信息 json类型
    * */
    @PostMapping("/addFeedBack")
    public R addFeedBack(@RequestBody DriverFeedBack driverFeedBack){
        // 添加反馈信息
        historyOrderService.addFeedBack(driverFeedBack);
        return R.ok();
    }

    // 根据订单ID查询司机评价信息
    @GetMapping("/findFeedBack")
    public R findFeedBack(String orderId){
        // 查询司机评价信息
        DriverFeedBack driverFeedBack = historyOrderService.findFeedBack(orderId);
        return R.ok(driverFeedBack);
    }

    /*
    * 司机提交评价 添加到司机评价表
    * driverAppraise为Json类型 参数
    * */
    @PostMapping("/addAppraise")
    public R addAppraise(@RequestBody OrderAppraise orderAppraise){
        // 添加或修改反馈信息
        historyOrderService.addAppraise(orderAppraise);
        return R.ok();
    }

    @GetMapping("/findAppraise")
    public R findAppraise(String orderId){
        // 查询司机评价信息
        OrderAppraise orderAppraise = historyOrderService.findOrderAppraiseByOrderId(orderId);
        // 返回司机评价信息封装在R对象中
        return R.ok(orderAppraise);
    }


    @GetMapping("/getmonth")
    public R getmonth(){
        return R.ok(historyOrderService.getmonth());
    }

    @PostMapping("getorderMoney")
    public R getorderMoney(@RequestBody OrderVo orderVo){
        return R.ok(historyOrderService.getorderMoney(orderVo));
    }

    @GetMapping("getdrivermoney")
    public R getdrivermoney(BigDecimal jg){
        return R.ok(historyOrderService.getdrivermoney(jg));
    }

    @GetMapping("getmoney")
    public  BigDecimal getmoney(String orderId){
        return historyOrderService.getmoney(orderId);
    }



}
